The present invention relates to methods and tools for visually aiding interpretation of data displayed on a computer display device.
A well known mechanism for guiding a computer user""s interaction with the computer is xe2x80x98Bubble Helpxe2x80x99 (also known as xe2x80x98Tool Tipsxe2x80x99 and xe2x80x98Hover Helpxe2x80x99). The xe2x80x98Bubble Helpxe2x80x99 mechanism aids user interaction by displaying to a user a text label explaining user interface mechanisms, such as explaining the functions represented by tool bar graphics or explaining what data a user should enter in an entry field. The explanatory text displayed via the Bubble Help mechanism is a static piece of information which is specific to and embedded within an application program. Text associated with a particular icon, field or other screen element is displayed alongside the associated icon or element in response to an input device pointer being moved into close proximity to the respective graphics or other screen element.
Other known forms of help system include context-sensitive on-line user guides which are specific to an application and which have functions for displaying to the user, in response to requesting help from within the application, specific predefined help information which is relevant to the part of the application which is currently active. Various parts of, or screen locations within, the application have labels associated with them which point to the relevant help text when help is requested.
These various user guidance mechanisms are directed at explaining functions or explaining what action is required of a user rather than aiding interpretation of data. The information they present to the user is predefined for the application (that is, predefined for the active part of the application or for a specific icon or field) and typically provides no help with interpretation of the data managed by the application.
Spreadsheet application programs provide tools which help with data analysis, but the type of analysis supported is not only specific to the spreadsheet application but also specific to a type of processing that users are expected to perform and which is always performed in the same way (for example, calculating totals for a complete column of data values, or adding a chosen percentage to those totals, or generating a graphical representation of a predefined set of elements in a table). Such tools within spreadsheets are not suitable for unplanned, flexible data interpretation operations such as exploring a selected set of data to find patterns, trends and exceptions.
Advances in the provision of assistance with interpretation of displayed data are disclosed in U.S. Pat. No. 5,896,491 to Englefield based on International patent application No. PCT/GB9502286 (publication No. WO96/39655), and which is assigned to the assignee of the present application and is incorporated herein by reference. Englefield discloses an object model in which operations are implemented as selectable instances of object classes which define the operations (as methods and properties). The operations can be applied to selected sets of data managed by any of a number of application programs (which may include speadsheets, word processors, Web browsers, databases). The algorithm within each operator object are independent executables that can be shared by all application programs which are able to interface with the operator objects.
The operations disclosed in Englefield include interpretation operations which visually adapt the displayed selected data set. One example is the application of colour codes to elements of an application""s table of numerical data values where the codes indicate whether each value is above or below the average for the selected data set. Another example applies colour codes which indicate a ranking of data values in order of magnitude. Another example operation identifies positive and negative trends within numerical data by colour coding. For character data, one example operation is a spell check operation which highlights words which are not recognised by the spell check operation.
Englefield also discloses data-generating operations being performed by independently executable algorithms on selected sets of data managed by any one of a number of different application programs enabled to interface with the algorithms. Examples of the operations which process selected application-managed data to generate some additional data are sum, arithmetic mean and standard deviation computation operations. Further disclosed example operations include the generation of graphical representations of the magnitudes of the selected data values.
Although Englefield discloses a mechanism which greatly assists the user to recognize patterns, trends and exceptions within data, and avoids the need to replicate functions within multiple different application programs by implementing operations via generic objects that can be applied to the data of different applications, it does not provide any support for per-value interpretation of data beyond what can be discerned from a graph or from colour codes or other applied emphasis.
The present invention provides a mechanism and a method for presenting a per-value interpretation of data to a user of a data processing system.
According to one aspect of the invention, there is provided a mechanism for providing a per-value interpretation of data to a user of a data processing system, including: one or more processing components, responsive to user selection of an operation to be performed and user selection of a set of an application component""s data values, for processing the selected set of data values to generate a result; wherein said one or more processing components have means for generating per-value interpretation information corresponding to said generated result, and for providing said interpretation information to the application component for display to the user.
Logic for performing a particular processing operation on a set of data values, including processing the set of data values and generating per-value interpretation information, is preferably encapsulated within a respective processing object or a set of associated objects in an object oriented data processing environment. (An example processing operation may calculate an average for a set of data values and then compare each value with the average and generate information describing the relation of each value to the average). The application component comprises a second object adapted to interface with this processing object or set of objects. According to this preferred embodiment of the invention, a processing object class provides methods for performing operations on an application component""s data and for providing per-value interpretation information back to the application component. Each processing object is thus an instance of a processing object class that processes selected data from any one of a number of application components adapted to interface with the generic object. The application component is responsible for displaying the interpretation information to the user. This is a distinction from typical prior art interpretation operations which are written specifically for a single application and are embedded within the sequential code of that application and limited to it. Prior art interpretation operations may even be limited to a predefined set of data elements within an application.
An xe2x80x9capplication componentxe2x80x9d in this context is not limited to a component programming environment and may be any application program or any part of an application program or applet, (such as a Java Bean (TM) or Active/X control), which is able to provide its data values to the processing component or part and to receive the returned interpretation information. Example components range from fine grained components such as entry fields and buttons, through medium grained components such as grids, tables and tree views, to more sophisticated components such as charts and spreadsheets.
A xe2x80x9csetxe2x80x9d of data values may be a single value or a plurality of values. The interpretation information in a preferred embodiment describes the relation of a specific selected data value to other values in a selected data set or to an absolute reference value, this relation being determined by the logic for processing the selected set of data. The interpretation information is preferably displayed to the user on a display device connected to the data processing system, subsequent to selection of the set of data values, in response to an input device pointer being moved into close proximity to a specific data value to select it.
The interpretation information may, for example, be displayed as transiently-displayed xe2x80x98flyoverxe2x80x99 alphanumeric text using the presentation mechanism known for xe2x80x98Bubble Helpxe2x80x99, or as a status line message. Use of the xe2x80x98Bubble Helpxe2x80x99 mechanism to display per-value data interpretation information is not known in the prior art. The derivation of interpretative information from the relationship of a selected value to a set of values or to a reference value and then display of that interpretative information is also not known.
The processing of selected data by a processing object is dynamically performed in response to selection of both the operation to be performed and the data value or values it is to be performed on. Dynamic processing, with a result which is dependent on both the processing operation and the current selected data value or values, is a distinction from prior art help functions which simply retrieve a predefined stored piece of information in response to mouse pointer location. The provision of dynamically generated per-value interpretation results for selected data from any one of a number of application components represents an improvement in both the flexibility and usefulness of the data interpretation as compared with the prior art.
According to one embodiment of the invention, the dynamic processing of application data by a generic processing object is a calculation which compares each value of a selected set of data values with other data values in a selected set or with a reference value and then generates annotation information corresponding to the result of that calculation for each value. An alphanumeric annotation text string may be generated for some operations by combining a numerical result of the calculation with associated text stored by the processing object (slotting a calculation result and associated text into a template). An example string for a data value within a selected set is:
xe2x80x9cN is within 10% of row mean Mxe2x80x9d
where N is the selected data value and M is the calculated mean of the respective row of a selected data set, and the wording xe2x80x9cis within 10% of row meanxe2x80x9d is text which is selected by comparing the values M and N and mapping the result of the comparison to one of a number of result categories having corresponding stored text strings. Each result of a calculation performed on a data value is matched with one of the plurality of different result categories which each have different text. The text to be included in the output string could be any interpretative information.
For other operations, and in other embodiments, the text may be set to contain any string that can be algorithmically derived from the value, the selected set of values, and any reference values.
As a further alternative, the interpretative annotation information could be generated by a database lookup operation using the result of the calculation as a key into the database to obtain information for display.
Instead of a text string, the interpretative annotation information could be a sound clip or any other media component or combination of components, and the annotation information could be any interpretative information which is relevant to the current data value or values and the current processing operation. Thus, xe2x80x9cdisplayingxe2x80x9d of the information to a user may mean playing a sound clip or a video clip or displaying a flyover text box on a screen, or any other method of information presentation.
A method according to a second aspect of the invention provides to a user of a data processing system per-value interpretative information relating to application data values, the method including the steps of: in response to user selection of a set of an application component""s data values, generating per-value interpretation information corresponding to said selected data values; and in response to movement of an input device pointer into a display screen area associated with a data value within said selected set of data values, presenting said interpretation information to the user via an output device connected to the data processing system.
A method according to a further aspect of the invention provides to a user of a data processing system per-value interpretative information relating to data values of an application component, the method including the steps of: in response to user selection of an operation to be performed and user selection of a set of an application component""s data values, processing the selected set of data values to generate a result; generating per-value interpretation information corresponding to said generated result; and providing said interpretation information to the application component for display to the user.
A method according to one embodiment of the invention includes the following sequence of steps: user selection of an operation to be performed; user selection of a set of data to be processed; processing of each data value in the set with reference to other data values within the set or by comparison with a reference value, and generation of an annotation string representing the relation of each value to the other values or the reference value; user selection of a particular data value within the set (such as by mouse proximity); accessing of the annotation string relating to the particular selected value and displaying of the annotation string. In the preferred embodiment, the processing of the selected set of values and generation of per-value interpretative annotation strings is performed by a generic processing object which then returns a set of annotation strings to the application component. Particular annotation strings are then displayed by the application component in response to the user selection of a particular data value by mouse pointer positioning.
According to one embodiment, the mechanisms and methods according to the invention are implemented as a set of software components for controlling the operation of a data processing system. The software components may be provided within a computer program product comprising computer program code recorded on a computer readable storage medium. The invention may be implemented within an Internet or intranet Browser, or within an application development toolkit such as a visual builder.
According to a further aspect of the invention there is provided a set of software components for use in a data processing system having a connected display device for displaying data, an input controller responsive to signals received from an input device connected to the system for moving a pointer displayed on the display device so as to enable a user to select a set of data items represented on the display device, and processing means for performing a selected operation on the selected set of data items, the set of components providing a mechanism for providing a per-value interpretation of data to a user of the data processing system and including: one or more application components adapted to display data on the display device; one or more processing components, responsive to user selection of an operation to be performed and user selection of a set of an application component""s data values, for processing the selected set of data values to generate a result; wherein said one or more processing components have means for generating per-value interpretation information corresponding to said generated result, and for providing said interpretation information to the application component for display to the user; and a connection component enabling communication between said one or more application components and said one or more processing components.